利用Spark RDD实现分组并排序

您所在的位置:网站首页 spark 分组求最大 利用Spark RDD实现分组并排序

利用Spark RDD实现分组并排序

2024-07-14 16:33| 来源: 网络整理| 查看: 265

摘 要

本文将介绍利用Spark RDD实现分组并排序。

前言

被朋友问到Spark分组并排序怎么实现?当时,本人觉得So-Easy的问题。因为在MapReduce也会有类似的需求,相较于MapReduce,那Spark的实现简直简单爆了。but,依然阴沟翻船,具体思路是没有错的,但在纸上描述代码的时候出现了错误,这其实就是归根于用IDE的代价吧。好多东西,不需要刻意的去记忆。反思... ...所以在ide上手动实现了一遍Spark RDD 分组并排序,以示警戒。

思路

思路很简单,就是按照key分组,并且分组完成后将其每组内部进行分组排序。涉及到的算子有两个:groupByKey & mapValues

代码实现代码语言:javascript复制object RDDTest { def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("local").setAppName("RDDTest") val sc = new SparkContext(conf) val rdd1 = sc.parallelize(List(("a",1),("a",2),("a",3),("a",4),("b",5),("b",6),("b",7),("b",8))) //根据key分组并内部降序 rdd1.groupByKey().mapValues(f=>{ //分组内部排序的两种方式 f.toList.sorted.reverse // f.toList.sortWith(_>_) }).foreach(println) sc.stop() } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3